package com.huimingpay.merchant.api;

import com.huimingpay.common.domain.BusinessException;
import com.huimingpay.merchant.dto.MerchantDTO;
import com.huimingpay.merchant.dto.StaffDTO;
import com.huimingpay.merchant.dto.StoreDTO;

/**
 * ClassName:IdMerchantService
 * Package:com.huimingpay.merchant.api
 * Time: 2024/7/17
 */
public interface MerchantService {


    /**
     * 根据商家ID查询商家信息
     *
     * @param merchantId 商家ID
     * @return MerchantDTO 商家信息的DTO对象
     */
    MerchantDTO queryMerchantById(Long merchantId);

    /**
     * 商户注册
     * @param merchantDTO 商户信息
     * @return
     */
    MerchantDTO createMerchant(MerchantDTO merchantDTO) throws BusinessException;


    /**
     * 资质申请接口
     * @param merchantId 商家ID
     * @param merchantDTO 资质申请信息
     * @throws BusinessException
     */
    void applyMerchant(Long merchantId,MerchantDTO merchantDTO) throws BusinessException;


    /**
     * 商户下新增门店
     * @param storeDTO 门店信息
     * @return 门店信息
     * @throws BusinessException
     */
    StoreDTO createStore(StoreDTO storeDTO) throws BusinessException;

    /**
     * 商户下新增员工
     * @param staffDTO 员工信息
     * @return 员工信息
     * @throws BusinessException
     */
    StaffDTO createStaff(StaffDTO staffDTO) throws BusinessException;

    /**
     * 绑定员工到门店
     * @param staffId 员工ID
     * @param storeId 门店ID
     * @throws BusinessException
     */
    void bindStaffToStore(Long staffId, Long storeId) throws BusinessException;


}
